# -*- coding: utf-8 -*-
# name: def
# contributor: Orestis Markou
# contributor: Yasser González Fernández <yglez@uh.cu>
# --
def ${1:name}($2):
    """
    $3
    ${2:$
      (let* 
        ((indent
            (concat "\n" (make-string (current-column) 32)))
           (args
            (mapconcat
             '(lambda (x)
                (if (not (or (string= (nth 0 x) "")))
                    (concat "- " (nth 0 x)
                            ": ")))
             (mapcar
              '(lambda (x)
                 (mapcar
                  '(lambda (x)
                     (replace-regexp-in-string "[[:blank:]]*$" ""
                      (replace-regexp-in-string "^[[:blank:]]*" "" x)))
                  x))
              (mapcar '(lambda (x) (split-string x "="))
                      (let ((funcargs (split-string text ",")))
                        (if (string= (car funcargs) "self")
                            (cdr funcargs)
                          funcargs))))
             indent)))
      (if (string= args "")
          (make-string 3 34)
        (mapconcat
         'identity
         (list "Keyword arguments:" args (make-string 3 34))
         indent)))
    }
    $0
